<?php
/**
 * 試合参加学年選択Ｕ／Ｉモジュール
 */
require_once 'ZendPartial/input/checkbox/CheckboxController.php';
require_once 'Request/DateTime.php';
require_once APPLICATION_PATH . '/models/Names/Names.php';
require_once APPLICATION_PATH . '/models/Calendar/xml/CalendarXmlController.php';

class Components_ChooseGameAgeController extends ZendPatrial_Input_CheckboxController
{
	const KEY_CTRL = 'CTRL';
	const KEY_LABEL = 'LABEL';

	/** HTTPリクエストオブジェクト */
	protected $_objRequest;
	/** カレンダーデータオブジェクト */
	protected $_objCalendar;
	/** 招集学年数 */
	protected $_iGakunenCount;
	/** 学年ラベルリスト */
	protected $_aryGakunenLabelList;

	public function __construct()
	{
		parent::__construct(Names::GAKUNEN);
		$this->_aryGakunenLabelList = array();
		$this->_objRequest = new Lib_Request_DateTime();
		$this->_setGakunen();
	}

	public function fetch()
	{
		$aryHtml = array();
		$i =0;
		while ($i < $this->_iGakunenCount) {
			$aryHtml[]
			= array(
					self::KEY_CTRL=>parent::fetch($i),
					self::KEY_LABEL=>$this->_aryGakunenLabelList[$i]
					);
			$i ++;
		}
		return $aryHtml;
	}

	/**
	 * 招集学年から設置学年を設定する
	 */
	protected function _setGakunen()
	{
		/***
		 * HTTPりくえすとから　予定ＩＤを取得
		 * 設定されていない場合、招集学年を取得することができないので
		 * エラーリターン
		 */
		$id = $this->_objRequest->get(Names::YOTEIID);
		if ($id == '') {
			return FALSE;
		}
		$yyyy = $this->_objRequest->getYear();
		$mm = $this->_objRequest->getMonth();
		$yyyymm = $yyyy . sprintf('%02d', $mm);
		$this->_objCalendar = new Models_Calendar_Xml_Controller($yyyymm);
		$YoteiDataset = $this->_objCalendar->searchId($id);
		if ($YoteiDataset === FALSE) {
			return FALSE;
		}
		$sGakunenList = $YoteiDataset[Models_Calendar_Controller::KEY_DRAFT_AGE];
		$aryGakunenList = explode(',', $sGakunenList);
		$this->_iGakunenCount = count($aryGakunenList);

		foreach($aryGakunenList as $sGakunen){
			$this->add($sGakunen, $sGakunen);
			$this->_aryGakunenLabelList[] = $sGakunen;
		}
	}
}